SCHEDU page# 0001 next
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
SCHEDU page# 0002 next prev
65: BEGIN SCHEDU ↔ SUBTTL SCHEDULING ALGORITHM FOR SWAPPING SYSTEM
66:
67:
68:
69:
70: QJ←DDB
71: Q←PROG
72: PC←UUO
73: QR←AC1
74:
75:
76:
77:
78:
79: ↑NXTINI:
80: REPEAT 0,<
81: SYNINI JBTCSC
82: MOVE DDB,[XWD JBTOWN,JBTOWN+1]
83: SETZM JBTOWN
84: BLT DDB,JBTOWN+JOBN-1
85: >
86: SETZM SCHBEG
87: MOVE DDB,[XWD SCHBEG,SCHBEG+1]
88: BLT DDB,SCHEND
89: MOVEI DDB,MAXQ
90: NXTIN1: SETZM AVALTB(DDB)
91: SETOM REQTAB(DDB)
92:
93:
94: SOJGE DDB,NXTIN1
95: SETZM SWPCNT
96: SETZM SCHMQT
97: SETZM QJOB
98: MOVE DDB,[XWD QJOB,QJOB+1]
99: BLT DDB,QJOB+JOBN-1
100: IFN FTSWAP,<
101: PUSHJ P,FBINI
102: JRST SWPINI
103: >
104: IFE FTSWAP,<POPJ P,>
SCHEDU page# 0003 next prev
106:
107:
108:
109:
110:
111:
112:
113:
114: ↑NXTJOB:
115: JUMPN PID,SCHD1
116:
117:
118:
119:
120:
121: CKJB3: SKIPN J,JOB(PID)
122: JRST CKJB1
123: CONO PI,PIOFF
124: MOVE DAT,JOBQUE(J)
125: MOVMM DAT,JOBQUE(J)
126: CONO PI,PION
127: MOVM DDB,DAT
128: HLRZ IOS,JBTSTS(J)
129: ANDCMI IOS,RUNMSK
130: CAIE IOS,RUNABLE
131: JRST CKJB10
132: CAIE DDB,RUNQ
133: CAIN DDB,TQ
134: CAIA
135: JRST CKJB10
136: SKIPE TIMEF(PID)
137: SOSLE SCHMQT(PID)
138: CAIA
139: JRST CKJB9
140: IFN FTSWAP,< SKIPE XJOB(J)
141: JRST CHKXJ1
142: LDB DDB,PSEGN
143: JUMPE DDB,CPOPJ
144: IFN FTSWAP,< SKIPE XJOB(DDB)
145: JRST CHKXJ3
146: MOVE DDB,JBTSTS(DDB)
147: TLNE DDB,SHF!SWP
148: JRST CKJB2A
149: POPJ P,
SCHEDU page# 0004 next prev
151:
152: CHKXJB: SKIPE XJOB
153: POPJ P,
154: AOS XJOB
155: PUSHACS
156: PUSHJ P,DISJOB
157: PUSHJ P,DISMES
158: ASCIZ / XJOB(J) SET BUT NOT XJOB(0)
159: /
160: POPACS
161: POPJ P,
162:
163: CHKXJ4: PUSH P,J
164: MOVE J,DDB
165: PUSHJ P,CHKXJB
166: POP P,J
167: POPJ P,
168:
169: CHKXJ3: PUSHJ P,CHKXJ4
170: JRST CKJB2A
171:
172: CHKXJ1: PUSHJ P,CHKXJB
173: JRST CKJB2A
174:
175: CKJB9: MOVEI DAT,QQMQT
176: MOVEM DAT,SCHMQT(PID)
177: AOS NTMOS
178: CAIE DDB,TQ
179: JRST CKJB2A
180: MOVEI DDB,RUNQ
181: MOVEM DDB,JOBQUE(J)
182: SKIPA DAT,[-1,,QRUNW]
183: CKJB10:
184: HRR DAT,QBITS(DDB)
185: PUSHJ P,QXFER
186: MOVE J,JOB(PID)
187: CKJB2A:
188: REPEAT 0,<
189: PUSHJ P,JOBRLS ;ARRIVE HERE TO TURN OFF A JOB
190: >
SCHEDU page# 0005 next prev
192: CKJB1: JUMPN PID,SCHED
193: CKJB2: SETZ TAC1,
194: CONO PI,PIOFF
195: SKIPN J,QJOB
196: JRST CKJB4
197: EXCH TAC1,(J)
198: HRRZM TAC1,QJOB
199: CONO PI,PION
200: SUBI J,QJOB
201: CONO PI,PIOFF
202: MOVE DAT,JOBQUE(J)
203: MOVMM DAT,JOBQUE(J)
204: CONO PI,PION
205: MOVM DDB,DAT
206: HRR DAT,QBITS(DDB)
207: PUSHJ P,QXFER
208: JRST CKJB2
209:
210: CKJB4: CONO PI,PION
211: MOVEI QJ,AVLNUM
212: CKJB6: SKIPN AVALTB(QJ)
213: SOJGE QJ,CKJB6
214: CAIGE QJ,MINQ
215: JRST CKJB7
216: MOVN J,QJ
217: HRRE J,JBTQ(J)
218: JUMPLE J,CKJB8
219: MOVNI DAT,RUNQ
220: MOVEM DAT,JOBQUE(J)
221: HRROI DAT,QRUNW
222: SETZM AVALTB(QJ)
223: PUSHJ PDP,QXFER
224:
225: CKJB8: SOJG QJ,CKJB6
226: CKJB7:
227: SKIPE INTREQ
228: PUSHJ P,INTRUN
229: IFE FTSWAP,<
230: PUSHJ PDP,CHKSHF
231: >
232: IFN FTSWAP,<
233: HGMAC(10)
234: PUSHJ PDP,SWAP
235: HGMAC(6) >
SCHEDU page# 0006 next prev
237:
238:
239: SCHED: AOS NSCHEDS
240: MOVEI DAT,ALLRUNSCAN
241: JSP PC,QSCAN
242: JRST SCHD1
243: PUSH P,DAT
244: PUSHJ P,CHKJOB
245: JRST SCHPDR
246: POP P,DAT
247: JRST SCH1
248:
249: SCHPDR: POP P,DAT
250: SCH2: JRST (QR)
251:
252: REPEAT 0,< ;FLUSH THIS
253: SCHSCN: MOVE J,JOB(PID) ; START AT CURRENT JOB NUMBER MINUS ONE
254: SCHD2: SOJG J,SCHD3 ; WRAP JOB 0 AROUND TO MAXIMUM LEGAL JOB NUMBER
255: MOVEI J,JOBN-1
256: SCHD3: PUSHJ P,CHKJOB ; IS HE REALLY RUNNABLE?
257: JRST SCH2 ; NO
258: JRST SCH1 ; YES, DO IT.
259:
260: SCH2: CAIN J,1 ; IS THIS JOB 1?
261: SKIPE JOB(PID) ; IF THIS IS JOB 1 AND THE NULL JOB RAN LAST, WE ARE DONE
262: CAMN J,JOB(PID) ; ARE WE BACK TO WHERE WE STARTED?
263: JRST SCHD1 ; YES, RETURN NULL JOB
264: JRST SCHD2 ; NO, SCAN NEXT JOB
265: >
SCHEDU page# 0007 next prev
267:
268:
269:
270: CHKJOB: HLRZ IOS,JBTSTS(J)
271: ANDCMI IOS,RUNMSK
272: IFN FTSWAP,<
273: SKIPE XJOB(J)
274: JRST CHKXJB
275: >
276: CAIN IOS,RUNABLE
277: JRST SCHD4
278: TRNE IOS,RUN
279: POPJ P,
280: MOVM DAT,JOBQUE(J)
281: CAIE DAT,RUNQ
282: POPJ P,
283: PUSHACS
284: MOVSI DAT,RUN
285: ANDCAM DAT,JBTSTS(J)
286: MOVNI DAT,STOPQ
287: MOVEM DAT,JOBQUE(J)
288: PUSHJ P,REQUE
289: PUSHJ P,DISJOB
290: PUSHJ P,DISMES
291: ASCIZ / IN RUNQ; NOT RUNNABLE. JBTSTS= /
292: MOVE TAC,JBTSTS(J)
293: PUSHJ P,DISOCT
294: PUSHJ P,DISCRLF
295: POPACS
296: POPJ P,
SCHEDU page# 0008 next prev
298:
299:
300: SCHD4: LDB DDB,PSEGN
301: JUMPE DDB,CPOPJ1
302: JUMPN PID,CPOPJ
303: MOVE DSER,JBTSTS(DDB)
304: TLNE DSER,SWP
305: JRST SCH5
306: TLNE DSER,SHF
307: POPJ P,
308: SKIPE XJOB(DDB)
309: JRST CHKXJ4
310: MOVM DSER,JOBQUE(DDB)
311: CAIN DSER,STOPQ
312: JRST SCH3
313: MOVEI DSER,STOPQ
314: MOVNM DSER,JOBQUE(DDB)
315: MOVEI DAT,QSTOPW
316: PUSH P,J
317: MOVE J,DDB
318: PUSHJ P,QXFER
319: POP P,J
320: SCH3: CAMN J,SEGWAIT
321: SETZM SEGWAIT
322: JRST CPOPJ1
323:
324: SCH5: SKIPE SEGWAIT
325: POPJ P,
326: MOVEM J,SEGWAIT
327: MOVM DAT,JOBQUE(DDB)
328: CAIN DAT,SEGQ
329: POPJ P,
330: PUSH P,J
331: MOVE J,DDB
332: MOVEI DAT,SEGQ
333: MOVNM DAT,JOBQUE(J)
334: MOVEI DAT,QSEGW
335: PUSHJ P,QXFER
336: POP P,J
337: POPJ P,
SCHEDU page# 0009 next prev
339:
340:
341:
342: SCH1:
343: REPEAT 0,<
344: MOVE DDB,JB2STS(J)
345: JUMPE PID,SCH6
346: TLNN DDB,RUN2
347: JRST SCH2
348: JRST SCH4
349: SCH6: TLNN DDB,RUN1
350: JRST SCH2
351: SCH4: PUSHJ P,JOBGET
352: JRST SCH2
353: >
354: POPJ P,
355:
356: SCHD1: SETZ J,
357: SKIPN PID
358: AOS NNULLJS
359: POPJ PDP,
SCHEDU page# 0010 next prev
361:
362:
363:
364: REPEAT 0,<
365:
366: JOBGET:
367: PSYNC JBTCSC
368: JUMPE PID,JOBG3
369: SKIPLE JBTOWN(J)
370: JRST JOBG1
371: SOS JBTOWN(J)
372: JRST JOBG2
373: JOBG3: SKIPGE JBTOWN(J)
374: JRST JOBG1
375: AOS JBTOWN(J)
376: JOBG2: AOS (P)
377: JOBG1: XSYNC JBTCSC
378: POPJ P,
379:
380: JOBRLS:
381: JUMPE PID,JOBRL1
382: AOSLE JBTOWN(J)
383: JRST JOBRER
384: POPJ P,
385: JOBRL1: SOSL JBTOWN(J)
386: POPJ P,
387: JOBRER: PUSHACS
388: PUSHJ P,ALTNOW
389: JFCL
390: PUSHJ P,DISDATE
391: PUSHJ P,DISMES
392: ASCIZ /ππJOB RELEASED ILLEGALLY
393: /
394: POPACS
395: DEBCHECK
396: SKIPN DISFLAG
397: JRST JOBR2
398: PUSHJ P,DISFLUSH
399: JRST AUTOLOAD
400:
401: JOBR2: JUMPE PID,.+2
402: SOSA JBTOWN(J)
403: AOS JBTOWN(J)
404: POPJ P,
405: >
SCHEDU page# 0011 next prev
407:
408:
409: ↑ORDER:
410: MOVE DDB,INTIME+P1PID
411: EXCH DDB,OINTIME
412: SUB DDB,OINTIME
413: MOVE J,UPTIME+P1PID
414: EXCH J,OUTIME
415: SUB J,OUTIME
416: MOVE DSER,DDB
417: SUB DDB,J
418: MOVEM DDB,JLFACTOR
419: MOVEM DDB,RJLFACTOR
420: MOVSI DDB,1
421: IDIVM DDB,RJLFACTOR
422: IMULI DSER,=1000
423: IDIVM DSER,J
424: MOVEM J,JLRIT
425:
426: MOVE TAC,[XWD JBTNPR,JBTPRI]
427: BLT TAC,JBTPRI+JOBN-1
428: MOVNI Q,RUNQ
429: ORD3: HRRE Q,JBTQ(Q)
430: JUMPL Q,ORDX
431: ORD2: HRRE DSER,JBTQ(Q)
432: JUMPL DSER,ORDX
433: MOVE DDB,JBTPRI(DSER)
434: CAMG DDB,JBTPRI(Q)
435: JRST ORD3
436: HLRE UCHN,JBTQ(Q)
437: ORD1: JUMPL UCHN,ORDINS
438: CAMG DDB,JBTPRI(UCHN)
439: JRST ORDINS
440: HLRE UCHN,JBTQ(UCHN)
441: JRST ORD1
442:
443:
444: ORDINS: MOVE DDB,JBTQ(DSER)
445: HLLM DDB,JBTQ(DDB)
446: MOVS DDB,DDB
447: HLRM DDB,JBTQ(DDB)
448: MOVE DDB,JBTQ(UCHN)
449: HRRM DDB,JBTQ(DSER)
450: HRRM DSER,JBTQ(UCHN)
451: HRLM UCHN,JBTQ(DSER)
452: HRLM DSER,JBTQ(DDB)
453: JRST ORD2
454:
455: ORDX: SETZM ORDYET
456: POPJ P,
SCHEDU page# 0012 next prev
458:
459:
460:
461:
462:
463:
464:
465:
466: GRSPRI←←360000
467:
468: IFE FTSWAP,<
469: ↑JLCAL: POPJ P,
470: >
471:
472: IFN FTSWAP,<
473: ↑JLCAL: MOVE J,ORDYET
474: JUMPN J,CPOPJ
475: SOSLE J,JLCYET
476: JRST JLCA1
477: SETZM SWPCNT
478: MOVEI DDB,JLTIME
479: MOVEM DDB,JLCYET
480:
481: SETOM ORDYET
482: JUMPE PID,ORDER
483: POPJ P,
484:
485: JLCA1: ROT J,-1
486: JUMPL J,CPOPJ
487: CAIL J,JOBN
488: POPJ P,
489: SKIPE DDB,JBTJL(J)
490: JRST JLCA3
491: MOVSI DDB,(3B2)
492: MOVEM DDB,JBTNPR(J)
493: POPJ P,
SCHEDU page# 0013 next prev
495:
496:
497:
498:
499:
500:
501:
502: JLCA3: MOVN DSER,JBTJLH(J)
503: ASH DSER,-5
504: ADDM DSER,JBTJLH(J)
505:
506: MOVE UCHN,(DDB)
507: ADDM UCHN,JBTJLH(J)
508:
509: MOVSI DSER,1(DDB)
510: HRRI DSER,(DDB)
511: BLT DSER,JLLENGTH-2(DDB)
512:
513: HRRZ DSER,JBTRNB(J)
514: IMUL DSER,RJLFACTOR
515: MOVEM DSER,JLLENGTH-1(DDB)
516:
517:
518: MOVE DSER,JBTSTS(J)
519: TLNN DSER,JACCT
520: JRST JLCA15
521: HRLZI DDB,377777
522: HLR DDB,JBTPRI(J)
523: JLCA9: MOVEM DDB,JBTNPR(J)
524: POPJ P,
525:
526: JLCA15: SETZB AC3,JBTRNB(J)
527: MOVEI TEM,=100
528: MOVEI AC1,0
529: MOVSI DSER,JLLENGTH-1
530: HRRI DSER,JLLENGTH-1(DDB)
531: JLCA4: MOVE AC2,(DSER)
532: IMULI AC2,(TEM)
533: ADDI AC1,(TEM)
534: ADD AC3,AC2
535: MOVEI AC2,(TEM)
536: LSH AC2,-3
537: SUBI TEM,(AC2)
538: SUB DSER,[1,,1]
539: JUMPG DSER,JLCA4
540:
541: MOVE AC2,JBTJLH(J)
542: IMULI AC2,(TEM)
543: ADDI AC1,(TEM)
544: ADD AC3,AC2
545: SUB AC3,[3B2]
546: MOVNM AC3,JBTNPR(J)
547:
548:
549:
550:
551: SKIPE JBTGSL
552: POPJ P,
553: HRRZ AC2,JBTGSL(J)
554: CAILE AC2,320000
555: MOVEI AC2,320000
556: HRRZ DDB,PRJPRG(J)
557: MOVEI TEM,0
558: MOVEI DSER,JOBN-1
559: JLCA5: HRRZ UCHN,PRJPRG(DSER)
560: CAIN DDB,(UCHN)
561: SKIPN UCHN,JBTJL(DSER)
562: JRST JLCA6
563:
564: HRLI UCHN,-JLLENGTH
565: ADD TEM,(UCHN)
566: AOBJN UCHN,.-1
567:
568: JLCA6: SOJG DSER,JLCA5
569: IDIVI TEM,JLLENGTH
SCHEDU page# 0014 next prev
571:
572: CAMG AC2,TEM
573: POPJ P,
574: SKIPN SLCOST
575: JRST JLCA20
576: PUSH P,AC2
577: PUSH P,TEM
578: MOVEI TAC1,JOBN-1
579: HRRZ AC1,PRJPRG(J)
580: MOVEI AC2,0
581: JLCA10: HRRZ AC3,PRJPRG(TAC1)
582: MOVM DAT,JOBQUE(TAC1)
583: CAME AC1,AC3
584: JRST JLCA11
585: CAIE DAT,TQ
586: CAIN DAT,RUNQ
587: JRST JLCA14
588: CAIE DAT,DIOWQ
589: SKIPE JBTST2(TAC1)
590: JRST JLCA14
591: MOVEI DAT,JLOCK
592: TDNN DAT,JBTSTS(TAC1)
593: JRST JLCA11
594:
595: JLCA14: PUSH P,TAC1
596: PUSHJ P,CORSGT
597: ADDI AC2,(TAC1)
598: MOVE TAC1,(P)
599: LDB TAC1,[POINT 6,JBTSTS(TAC1),35]
600: JUMPE TAC1,JLCA13
601: MOVEI DDB,JOBN-1
602: MOVEI UCHN,0
603: JLCA12: LDB DSER,[POINT 6,JBTSTS(DDB),35]
604: CAMN DSER,TAC1
605: SKIPL JBTSTS(DDB)
606: CAIA
607: ADDI UCHN,1
608: SOJG DDB,JLCA12
609: PUSHJ P,CORSGT
610: MOVE TAC,TAC1
611: IDIVI TAC,(UCHN)
612: ADD AC2,TAC
613: JLCA13: POP P,TAC1
614: JLCA11: SOJG TAC1,JLCA10
615:
616: LSH AC2,-=10
617: MOVSI AC2,(AC2)
618: MOVE AC3,SLCOST
619: IDIV AC2,[=1000
620: =500]-1(AC3)
621: POP P,TEM
622: ADD TEM,AC2
623: POP P,AC2
624: JLCA20: CAMLE TEM,AC2
625: POPJ P,
626: MOVSI DDB,GRSPRI
627: HLR DDB,JBTNPR(J)
628: MOVEM DDB,JBTNPR(J)
629: POPJ P,
630: >
SCHEDU page# 0015 next prev
632: SUBTTL QCSS 24 JULY 67
633:
634:
635:
636:
637:
638:
639:
640:
641:
642:
643:
644:
645:
646:
647:
648:
649:
650:
651:
652:
653:
654:
655:
656:
657:
658:
659:
660:
661:
662:
SCHEDU page# 0016 next prev
664:
665:
666:
667:
668:
669: ↑QINI:
670: MOVNI DDB,MXQUE
671: HRL DDB,DDB
672: MOVEM DDB,JBTQ(DDB)
673: AOBJN DDB,.-1
674: MOVEI DDB,-NULQ
675: MOVSM DDB,JBTQ+1
676: MOVEI J,JOBN-1
677: MOVEM DDB,JBTQ(J)
678: HRLM J,JBTQ-NULQ
679: MOVEI DDB,1
680: HRRM DDB,JBTQ-NULQ
681: MOVNI DSER,NULQ
682: QINI1: HRRM J,JBTQ-1(J)
683: MOVEM DSER,JOBQUE(J)
684: SOJLE J,CPOPJ
685: SETZM JBTQ
686: HRLM J,JBTQ+1(J)
687: JRST QINI1
SCHEDU page# 0017 next prev
689:
690:
691:
692:
693:
694:
695:
696:
SCHEDU page# 0018 next prev
698:
699:
700:
701:
702:
703:
704:
705: ↑QXFER: CAIGE J,JOBN
706: JRST QXFER1
707: PUSHACS
708: PUSHJ P,DISDATE
709: PUSHJ P,DISERR
710: [ASCIZ/ILLEGAL JOB NUMBER AT QXFER.
711: J=/]
712: DISARG(DCP,<-20+J(P)>)
713: [ASCIZ/
714: /]
715: -1
716: POPACS
717: POPJ P,
718: QXFER1: JUMPGE DAT,QXFER2
719: MOVSI DSER,INTQXF
720: TDNN DSER,JBTIEN(J)
721: JRST QXFER2
722: IORM DSER,JBTIRQ(J)
723: SETOM INTREQ
724: QXFER2: SETZM SWPCNT
725: AOS NQXFERS
726: MOVE Q,(DAT)
727:
728: TLNE Q,200000
729: JRST QXFER3
730: MOVE DSER,UPTIME
731: SKIPGE JBTWAT(J)
732: ADDM DSER,JBTWAT(J)
733: JRST QXFER4
734:
735: QXFER3: MOVN DSER,UPTIME
736: SKIPL JBTWAT(J)
737: ADDM DSER,JBTWAT(J)
738: QXFER4: HRRE DSER,Q
739: MOVM DSER,DSER
740: CAIG DSER,MAXQ
741: DPB DSER,[POINT JWSIZ,JBTSTS(J),JWPOS]
742:
743: IFN FTSTAT, <
744: PUSH P,TAC
745: LSH DSER,6
746: MOVEI TAC,QUESTA(DSER)
747: PUSHJ P,STAPUT
748: POP P,TAC
749: >
750:
751: MOVE DSER,JBTQ(J)
752: MOVS UCHN,DSER
753: HRRM DSER,JBTQ(UCHN)
754: HRLM UCHN,JBTQ(DSER)
755: CAME Q,QRUNW
756: JRST QXF3
757: MOVE AC2,JBTPRI(J)
758: CAMGE AC2,[3B2]
759: JRST QXSB
760: HRRE DSER,JBTQ(Q)
761: JUMPL DSER,QXF3
762: QXF6: CAML AC2,JBTPRI(DSER)
763: JRST QXF8
764: HRRE DSER,JBTQ(DSER)
765: JUMPGE DSER,QXF6
766: JRST QXF3
767: QXF8: HLRZ UCHN,JBTQ(DSER)
768: HRLZM UCHN,JBTQ(J)
769: HRLM J,JBTQ(DSER)
770: HRRM DSER,JBTQ(J)
771: HRRM J,JBTQ(UCHN)
772: JRST QXF4
773:
774: QXSB: HLRE DSER,JBTQ(Q)
775: JUMPL DSER,QXF3
776: QXF5: CAMG AC2,JBTPRI(DSER)
777: JRST QXF9
778: HLRE DSER,JBTQ(DSER)
779: JUMPGE DSER,QXF5
780: JRST QXF7
781:
782: QXF9: HRRZ UCHN,JBTQ(DSER)
783: MOVEM UCHN,JBTQ(J)
784: HRRM J,JBTQ(DSER)
785: HRLM DSER,JBTQ(J)
786: HRLM J,JBTQ(UCHN)
787: JRST QXF4
788:
789:
790:
791:
792: QXF3: HLR Q,JBTQ(Q)
793:
794: QXF7: MOVE UCHN,JBTQ(Q)
795: HRRM J,JBTQ(Q)
796:
797: HRLM J,JBTQ(UCHN)
798:
799: HRRZM UCHN,JBTQ(J)
800: HRLM Q,JBTQ(J)
801:
802: QXF4: JUMPL Q,QNORUN
803:
804:
805:
806: QFIX1: SETZ DSER,
807: DPB DSER,[POINT JWSIZ,JBTSTS(J),JWPOS]
808: POPJ P,
SCHEDU page# 0019 next prev
810:
811:
812: QNORUN: CAMN J,SEGWAIT
813: SETZM SEGWAIT
814: LDB DSER,PSEGN
815: JUMPE DSER,CPOPJ
816: MOVM UCHN,JOBQUE(DSER)
817: CAIE UCHN,SEGQ
818: POPJ P,
819: PUSH P,J
820: MOVEI J,JOBN-1
821: QNORU1: LDB UCHN,PSEGN
822: CAIE UCHN,(DSER)
823: JRST QNORU3
824: MOVE AC2,JBTSTS(J)
825: TLNE AC2,SWP
826: JRST QNORU3
827: MOVM UCHN,JOBQUE(J)
828: CAIE UCHN,RUNQ
829: CAIN UCHN,TQ
830: JRST QNORU4
831: QNORU3: SOJG J,QNORU1
832: MOVNI DAT,STOPQ
833: MOVEM DAT,JOBQUE(DSER)
834: MOVEI DAT,QSTOPW
835: MOVE J,DSER
836: PUSHJ P,QXFER
837: QNORU4: POP P,J
838: POPJ P,
SCHEDU page# 0020 next prev
840:
841:
842:
843:
844:
845:
846:
847:
848:
849:
850:
851:
852:
853:
854:
855:
856:
857:
858:
859:
860:
861:
862:
863:
864:
865:
866:
867:
868:
869:
870:
871:
SCHEDU page# 0021 next prev
873: ↑QSCAN: SKIPN QR,(DAT)
874: JRST (PC)
875: HLRE J,QR
876: JRST (QR)
877:
878: QFOR1: MOVEI QR,QFORB
879:
880: QFOR: HRRE J,JBTQ(J)
881: JUMPGE J,1(PC)
882: QFORB: AOJA DAT,QSCAN
883:
884: QBAK1: HLRE J,JBTQ(J)
885: SKIPLE JBTQ(J)
886: JRST 1(PC)
887: AOJA DAT,QSCAN
888:
889: QBAK: HLRE J,JBTQ(J)
890: JUMPG J,1(PC)
891: AOJA DAT,QSCAN
892:
893: QFOR2: HRRE J,JBTQ(J)
894: HRRI QR,QFOR
895: JUMPGE J,QFOR
896: AOJA DAT,QSCAN
SCHEDU page# 0022 next prev
898: DEFINE X'(A),<
899:
900: ↑A'Q←←ZZ
901: ZZ←←ZZ+1
902: >
903: ZZ←←0
904: QUEUES
905: LOC←←ZZ
906: NQUEUE←←LOC
907: XP MAXQ,NQUEUE-1
908: XP MINQ,STQ
909: XP AVLNUM,MAXQ
910:
911:
912:
913:
914: DEFINE X!(A)
915: <
916: ↑A!Q←←LOC
917: LOC←←LOC+1
918: >
919: CODES
920: PQUEUES
SCHEDU page# 0023 next prev
922:
923:
924:
925:
926:
927:
928: DEFINE X!(A)
929: < Q!A!W
930: >
931:
932:
933: ↑QBITS: QUEUES
934: CODES
935: PQUEUES
936:
937:
938:
939:
940:
941: QFUCKW:
942: QTW: XWD 200000,-TQ
943: QRUNW: XWD 200000,-RUNQ
944: QSTW: XWD 600000,-STQ
945: QDTW: XWD 600000,-DTQ
946: QDCW: XWD 600000,-DCQ
947: QMTW: XWD 600000,-MTQ
948: QIOWW: XWD 400000,-IOWQ
949: QINTWW: XWD 400000,-INTWQ
950: QDIOWW: XWD 600000,-DIOWQ
951: QNULW: XWD 400000,-NULQ
952: ↑QSTOP:
953: QSTOPW: XWD 400000,-STOPQ
954: ↑QSEGW: XWD 600000,-SEGQ
955: QDWW: XWD 400000,-DWQ
SCHEDU page# 0024 next prev
957: IFN FTSWAP,<
958: ISCAN:
959: XWD -SEGQ,QFOR
960: XWD -TQ,QFOR
961: XWD -RUNQ,QFOR
962: XWD -DCQ,QFOR1
963: XWD -STQ,QFOR1
964: XWD -DTQ,QFOR1
965: XWD -MTQ,QFOR1
966: XWD -DCQ,QFOR2
967: XWD -STQ,QFOR2
968: XWD -DTQ,QFOR2
969: XWD -MTQ,QFOR2
970: 0
971:
972:
973: OSCAN: XWD -STOPQ,QBAK
974: XWD -MTQ,QBAK1
975: XWD -DTQ,QBAK1
976: XWD -STQ,QBAK1
977: XWD -DCQ,QBAK1
978: XWD -MTQ,QFOR1
979: XWD -DTQ,QFOR1
980: XWD -STQ,QFOR1
981: XWD -DCQ,QFOR1
982: XWD -DWQ,QBAK
983: XWD -INTWQ,QBAK
984: XWD -IOWQ,QBAK
985: XWD -RUNQ,QBAK
986: XWD -TQ,QBAK
987: 0
988:
989: ALLRUNSCAN:
990: XWD -TQ,QFOR
991: RUNSCAN:
992: XWD -RUNQ,QFOR
993: 0
994:
995: ↑DVWSCAN:
996: XWD -DWQ,QFOR
997: 0
998:
999: TQSCAN: XWD -TQ,QFOR
1000: 0
SCHEDU page# 0025 next prev
1002:
1003:
1004:
1005: ↑SETSIN:CONO PI,PIOFF
1006: SETZM SWPCNT
1007: TDNE TAC,JBTSIN(J)
1008: JRST PIONJ
1009: IFN FTSTAT,<PUSH P,TAC
1010: PUSH P,TAC1
1011: JFFO TAC,.+1
1012: LSH TAC1,6
1013: MOVEI TAC,SINSTA+4000(TAC1)
1014: PUSHJ P,STAPUT
1015: POP P,TAC1
1016: POP P,TAC
1017: >
1018: IORM TAC,JBTSIN(J)
1019: ANDCA TAC,JBTSIN(J)
1020: JUMPN TAC,PIONJ
1021: LDB TAC,PSINB0
1022: DPB J,PSINB0
1023: DPB TAC,PSINBJ
1024: DPB J,PSINFT
1025: SETZ TAC,
1026: DPB TAC,PSINFJ
1027: JRST PIONJ
1028:
1029:
1030: ↑CLRSIN:CONO PI,PIOFF
1031: TDNN TAC,JBTSIN(J)
1032: JRST PIONJ
1033: IFN FTSTAT,<PUSH P,TAC
1034: PUSH P,TAC1
1035: JFFO TAC,.+1
1036: LSH TAC1,6
1037: MOVEI TAC,SINSTA(TAC1)
1038: PUSHJ P,STAPUT
1039: POP P,TAC1
1040: POP P,TAC
1041: >
1042: ANDCAB TAC,JBTSIN(J)
1043: TLNE TAC,-1
1044: JRST PIONJ
1045: LDB TAC,PSINFJ
1046: PUSH P,J
1047: LDB J,PSINBJ
1048: DPB J,PSINBT
1049: DPB TAC,PSINFJ
1050: POP P,J
1051: SETZM JBTSIN(J)
1052: JRST PIONJ
1053:
1054:
1055: ↑FLUSIN:PUSH P,TAC
1056: MOVE TAC,JBTSIN(J)
1057: TLNN TAC,HLDSNB
1058: PUSHJ P,FLUHLD
1059: TLNN TAC,JRDSNB
1060: JRST FLUSN1
1061: PUSHJ P,JRSRCH
1062: JRDLOS
1063: FLUSN1: MOVSI TAC,-1
1064: PUSHJ P,CLRSIN
1065: POP P,TAC
1066: POPJ P,
1067:
1068:
1069:
1070: ↑JRSRCH:PUSH P,J
1071: MOVEI J,JOBN-1
1072: JRSRC1: HLRZ TAC,JBTFS(J)
1073: CAME TAC,(P)
1074: JRST JRSRC2
1075: MOVE TAC1,@-1(P)
1076: PUSHJ P,(TAC1)
1077: JRSRC2: SOJG J,JRSRC1
1078: POP P,J
1079: JRST CPOPJ1
1080:
1081:
1082: ↑FLUHLD:PUSH P,TAC
1083: PUSH P,J
1084: MOVE TAC,JBTSTS(J)
1085: TLNN TAC,JSEG
1086: JRST FLUHL1
1087: MOVEI J,JOBN-1
1088: FLUHL2: LDB TAC,PSEGN
1089: CAME TAC,(P)
1090: JRST FLUHL3
1091: MOVSI TAC,JHLDIN
1092: ANDCAM TAC,JBTSTS(J)
1093: FLUHL3: SOJG J,FLUHL2
1094: FLUHL4: POP P,J
1095: POP P,TAC
1096: POPJ P,
1097:
1098: FLUHL1: LDB J,PSEGN
1099: JUMPE J,FLUHL4
1100: MOVSI TAC,JHLDIN
1101: ANDCAM TAC,JBTSTS(J)
1102: JRST FLUHL4
1103:
1104:
1105: GETSIN: SETZ J,
1106: MOVEI QR,GETSN1
1107: GETSN1: LDB J,PSINFJ
1108: JUMPN J,(PC)
1109: JRST 1(PC)
SCHEDU page# 0026 next prev
1111: SUBTTL SWAP 4 AUG 67
1112:
1113:
1114:
1115:
1116:
1117:
1118:
1119:
1120:
1121:
1122:
1123:
1124:
1125:
1126:
1127:
1128:
1129:
1130:
1131:
1132:
1133:
1134:
1135:
1136:
1137:
1138:
1139:
1140:
1141:
1142:
1143:
1144:
1145:
1146:
1147:
1148:
1149:
1150:
1151:
SCHEDU page# 0027 next prev
1153: ↑SWAP: PUSH PDP,[SWPXIT]
1154: SOSLE SWPCNT
1155: POPJ PDP,
1156: MOVEI TAC,500
1157: MOVEM TAC,SWPCNT
1158: SKIPE SHFWAT
1159:
1160: PUSHJ PDP,CHKSHF
1161:
1162: SKIPN SHFWAT
1163: SKIPE SQREQ
1164: POPJ PDP,
1165: SKIPN FBACT
1166: JRST .+3
1167: SKIPE SWPBSY
1168: POPJ PDP,
1169: FINSWP: SKIPN J,FINISH
1170: JRST SWP2
1171: SETZM SWPCNT
1172: JUMPL J,FINOUT
SCHEDU page# 0028 next prev
1174:
1175:
1176: FININ:
1177: MOVEM J,LASTIN#
1178:
1179: MOVE DAT,JBTSTS(J)
1180: TLNN DAT,JSEG
1181: TRZN DAT,SAVJDA
1182: JRST FININA
1183: SKIPN JBTPDL(J)
1184: JRST FININA
1185:
1186: MOVEM DAT,JBTSTS(J)
1187: HRLZ TAC1,JBTPDL(J)
1188: HRR TAC1,JBTDAT(J)
1189: ADD TAC1,[<JBTPLN+JOBPRT-JOBPFI>,,JOBPRT]
1190: HRRZ DAT,JBTDAT(J)
1191: BLT TAC1,JOBPFI(DAT)
1192:
1193: FININA: SKIPE DAT,SERA
1194: JRST INERR
1195: LDB DAT,IMGOUT
1196: HLRZ TAC,JBTSWP(J)
1197: PUSHJ P,FXSAT
1198: MOVE JDAT,JBTDAT(J)
1199: IFN JDMPRG,<
1200: MOVE PROG,JBTADR(J)
1201: >
1202: MOVE DDB,JBTSTS(J)
1203: TLNN DDB,JSEG
1204: JRST FININ5
1205: PUSHJ P,UAPPLY
1206: PUSHJ P,SPWCNT
1207: SKIPN AC1,SEGWAIT
1208: JRST FININ1
1209: LDB AC1,[POINT 6,JBTSTS(AC1),35]
1210: CAIE AC1,(J)
1211: JRST FININ1
1212: SETZM SEGWAIT
1213: MOVNI AC1,STOPQ
1214: MOVEM AC1,JOBQUE(J)
1215: PUSHJ P,REQUE
1216: JRST FININ1
SCHEDU page# 0029 next prev
1218:
1219:
1220:
1221:
1222:
1223: FININ5: PUSHJ P,SPWCNT
1224: MOVE DDB,JOBPC(JDAT)
1225: TLNE DDB,USRMOD
1226: JRST FININ1
1227: HRRZ DDB,JOBDPG(JDAT)
1228: SUBI DDB,(PROG)
1229: MOVNS DDB
1230: HRRZ DSER,JOBDAC+PDP(JDAT)
1231: CAMLE DSER,SYSSIZ
1232: CAML DSER,MEMSIZ
1233: JRST FINZR2
1234: ADDM DDB,JOBDAC+PDP(JDAT)
1235: FINZR2: MOVEM PROG,JOBDPG(JDAT)
1236: FININ1: LDB DSER,PSEGN
1237: JUMPE DSER,FINZRL
1238: MOVE DDB,JBTSTS(DSER)
1239: HLRZ DSER,JBTADR(DSER)
1240: JUMPN DSER,FINZR1
1241: LDB DSER,PSEGN
1242: LDB DSER,[POINT 8,JBTSWP(DSER),35]
1243: ASH DSER,12
1244: SUBI DSER,1
1245: FINZR1: TLNE DDB,JWP
1246: TLO DSER,400000
1247: TRO DSER,400000
1248: FINZRL: MOVSI DDB,SWP
1249: ANDCAB DDB,JBTSTS(J)
1250: TLNN DDB,JSEG
1251: CAMN DSER,JOBRL2(PROG)
1252: JRST FINZ1A
1253: SKIPE JBTPR2(J)
1254: JRST FINZ1A
1255: SETOM STIME(J)
1256: MOVEM DSER,JOBRL2(PROG)
1257: FINZ1A: HRRE DSER,JBTLIN(J)
1258: JUMPL DSER,FINDET
1259: MOVSI DDB,DLYBIT
1260: CONO PI,SCNOFF
1261: TDNN DDB,TTYTAB(DSER)
1262: JRST NOTSET
1263: MOVSI DDB,COMBIT
1264: TDNE DDB,TTYTAB(DSER)
1265: JRST NOTSET
1266: AOS COMCNT
1267: IORM DDB,TTYTAB(DSER)
1268: IFN FTTTYBUG,<
1269: PUSHJ P,COMBCK
1270: PUSHJ P,CNTCOM
1271: >
1272: NOTSET: CONO PI,SCNON
1273: FINDET: MOVSI DSER,INTSWD
1274: TDNN DSER,JBTIEN(J)
1275: JRST FININ2
1276: IORM DSER,JBTIRQ(J)
1277: PUSH P,J
1278: PUSHJ P,INTRUN
1279: POP P,J
1280: FININ2:
SCHEDU page# 0030 next prev
1282:
1283:
1284: SETZM STIME(J)
1285: SKIPN BLTSWP
1286: JRST FINAFB
1287:
1288: SETCM DDB,JBTADR(J)
1289: HRR DDB,JBTADR(J)
1290: JUMPL DDB,.+3
1291: MOVE DSER,(DDB)
1292: AOBJP DDB,.-1
1293: MOVE DSER,(DDB)
1294: AOBJN DDB,.-1
1295:
1296: FINAFB: MOVE DDB,JBTSTS(J)
1297: TRZN DDB,WIPEJD
1298: JRST FININS
1299: HRRM DDB,JBTSTS(J)
1300: MOVE PROG,JBTADR(J)
1301: PUSHJ P,CLRINI
1302: FININS:
SCHEDU page# 0031 next prev
1304:
1305: HLRZ TAC,JBTSIN(J)
1306: JUMPE TAC,NSINBT
1307: PUSH P,J
1308: MOVSI TAC,HLDSNB
1309: TDNE TAC,JBTSIN(J)
1310: PUSHJ P,FLUHLD
1311: MOVSI TAC,INTSNB
1312: TDNN TAC,JBTSIN(J)
1313: JRST NOSINT
1314: PUSHJ P,CLRSIN
1315: PUSH P,HGCODE
1316: MOVEI TAC,7
1317: MOVEM TAC,HGCODE
1318: PUSHJ P,INTRUN
1319: POP P,HGCODE
1320: MOVE J,(P)
1321: NOSINT: MOVSI TAC,BATSNB
1322: TDNN TAC,JBTSIN(J)
1323: JRST NOSBAT
1324: PUSHJ P,CLRSIN
1325: PUSHJ P,BATSW
1326: MOVE J,(P)
1327: NOSBAT: MOVSI TAC,JRDSNB
1328: TDNN TAC,JBTSIN(J)
1329: JRST NOSJRD
1330: PUSHJ P,CLRSIN
1331: PUSHJ P,JRSRCH
1332: JRDWIN
1333: MOVE J,(P)
1334: NOSJRD: MOVSI TAC,COMSNB
1335: TDNN TAC,JBTSIN(J)
1336: JRST NOSCOM
1337: PUSHJ P,CLRSIN
1338: PUSH P,HGCODE
1339: MOVEI TAC,1
1340: MOVEM TAC,HGCODE
1341: SKIPE COMCNT
1342: PUSHJ P,COMMAND
1343: POP P,HGCODE
1344: NOSCOM: POP P,J
1345: MOVSI TAC,SPWSNB
1346: TDNE TAC,JBTSIN(J)
1347: PUSHJ P,CLRSIN
1348: NSINBT:
SCHEDU page# 0032 next prev
1350:
1351: MOVE DSER,J
1352: LDB J,PSEGN
1353: JUMPE J,SWAPSCAN
1354: MOVE DDB,JBTSTS(J)
1355: TLNN DDB,SWP
1356: JRST SWAPSCAN
1357: MOVM UCHN,JOBQUE(DSER)
1358: CAIE UCHN,RUNQ
1359: CAIN UCHN,TQ
1360: PUSHJ P,FININ7
1361: LDB TAC,IMGIN
1362: CAMG TAC,BIGHOL
1363: JRST INJOB
1364: JRST SWAPSCAN
1365:
1366: FININ7: MOVNI DAT,SEGQ
1367: MOVEM DAT,JOBQUE(J)
1368: SKIPN SEGWAIT
1369: MOVEM DSER,SEGWAIT
1370: MOVEI DAT,QSEGW
1371: JRST QXFER
SCHEDU page# 0033 next prev
1373:
1374:
1375: INERR: SKIPN FBACT
1376: TRNE DAT,IODTER!IODERR
1377: JRST .+2
1378: JRST FININ8
1379: MOVE DDB,JBTSTS(J)
1380: TLNN DDB,JSEG
1381: JRST INERNS
1382: SKIPE FBACT
1383: SKIPE FIRSTOUT
1384: JRST INERNS
1385:
1386: SETOM FIRSTOUT
1387: SETZM SERA
1388: LDB DDB,IMGIN
1389: LDB TAC,IMGOUT
1390: CAML DDB,TAC
1391: MOVE DDB,TAC
1392: LSH DDB,=18+=10
1393: MOVN TAC1,DDB
1394: HRR TAC1,JBTADR(J)
1395: MOVE DAT,[XWD J,JB2SWP]
1396: HLRZ DSER,JBTSWP(J)
1397: ADDI DSER,1
1398: HRRZS JBTSWP(J)
1399: JRST FBIREQ
1400:
1401: FININ8: SETZM FIRSTOUT
1402: SETZM FIT
1403: JRST INJO1
SCHEDU page# 0034 next prev
1405:
1406:
1407: INERNS: PUSHJ P,FLUSIN
1408: MOVE DDB,JBTSTS(J)
1409: TLNN DDB,JSEG
1410: JRST INERR7
1411:
1412: MOVSI DDB,SWP
1413: ANDCAM DDB,JBTSTS(J)
1414: MOVE AC1,PRJPRG(J)
1415: MOVEM AC1,JOBNAM(J)
1416: IFN FTSTAT,<PUSHJ P,NAMSTT>
1417:
1418: PUSHJ P,UAPPLY
1419: PUSHJ P,SEGERR
1420: JRST SWAPSCAN
1421:
1422:
1423:
1424:
1425: INERR7: MOVE PROG,JBTADR(J)
1426: SETZ DAT,
1427: SKIPN TAC,JOBHCU(PROG)
1428: JRST INERC0
1429: MOVEI TAC1,JOBJDA(PROG)
1430: HRLI TAC1,TAC
1431: INERJL: SKIPN DDB,@TAC1
1432: INERJ1: SOJGE TAC,INERJL
1433: JUMPL TAC,INERCN
1434: HRRZ DDB,DDB
1435: CAIL DDB,CHKBEG
1436: CAML DDB,MEMSIZ
1437: CAML DDB,RMEMSIZ
1438: AOJA DAT,INERR1
1439: AOJA DAT,INERJC
SCHEDU page# 0035 next prev
1441:
1442:
1443: INERC0: SETZM JOBJDA(PROG)
1444: INERCN: SETZ TAC,
1445: HLRZ DDB,DEVLST
1446: INERC1: MOVE AC1,DEVMOD(DDB)
1447: TRNN AC1,ASSPRG
1448: JRST INERC2
1449: LDB AC1,PJOBN
1450: CAIN AC1,(J)
1451: ADDI TAC,1
1452: INERC2: HLRZ DDB,DEVSER(DDB)
1453: JUMPN DDB,INERC1
1454: CAIN DAT,(TAC)
1455: JRST INERR4
1456: JRST INERR1
1457:
1458: INERJC: LDB AC1,PJOBN
1459: CAIN AC1,(J)
1460: JRST INERJ1
1461: INERR1: MOVE PROG,JBTADR(J)
1462: PUSHJ P,CLRJB1
1463: SETZM JOBHCU(PROG)
1464: MOVEI DSER,JOBJDA(PROG)
1465: HLRZ DDB,DEVLST
1466: INERR2: SETZM (DSER)
1467: MOVE UCHN,DEVMOD(DDB)
1468: TRNN UCHN,ASSPRG
1469: JRST INERR3
1470: LDB UCHN,PJOBN
1471: CAME UCHN,J
1472: JRST INERR3
1473: MOVEM DDB,(DSER)
1474: AOS JOBHCU(PROG)
1475: ADDI DSER,1
1476: INERR3: HLRZ DDB,DEVSER(DDB)
1477: JUMPN DDB,INERR2
1478: PUSHJ P,ESTOP
1479: INERR4: MOVE DSER,JOBHCU(PROG)
1480: MOVSI DAT,GOBIT
1481: INERRG: MOVEI DDB,JOBJDA(PROG)
1482: ADD DDB,DSER
1483: MOVE DDB,(DDB)
1484: MOVE UCHN,DEVMOD(DDB)
1485: TLNE UCHN,DVDSK!DVUDP
1486: ANDCAM DAT,DEVIOS(DDB)
1487: SOJGE DSER,INERRG
1488: MOVM J,FINISH
1489: INERR6: MOVSI DDB,SWP
1490: ANDCAM DDB,JBTSTS(J)
1491: SETZM XPANDF
1492: SETZM FINISH
1493: SEGERR: CAMN J,SEGWAIT
1494: SETZM SEGWAIT
1495: PUSHACS
1496: PUSHJ P,DISMES
1497: ASCIZ /
1498: SWAP READ ERROR /
1499: PUSHJ P,DISJOB
1500: PUSHJ P,DISCRLF
1501: POPACS
1502: PUSHJ P,TTYERP
1503: PUSHJ P,INLMES
1504: ASCIZ /SWAP READ ERROR/
1505: PUSHJ P,PRCRCC
1506: PUSHJ P,TTYSTC
1507: MOVE AC1,JBTSTS(J)
1508: TLNE AC1,JLOG
1509: JRST STOP1
1510: JRST ESTOP
SCHEDU page# 0036 next prev
1512:
1513:
1514: GIVEBANDS:
1515: SKIPN FBACT
1516: POPJ P,
1517: HLRZ UCHN,JB2SWP(J)
1518: SKIPN UCHN
1519: HLRZ UCHN,JBTSWP(J)
1520: INERX: PUSHJ P,FBGIVE
1521: CAIE UCHN,MAXFB
1522: SOJA UCHN,INERX
1523: HRRZS JBTSWP(J)
1524: HRRZS JB2SWP(J)
1525: POPJ P,
SCHEDU page# 0037 next prev
1527:
1528:
1529: FINOUT:
1530: MOVNS J
1531: SKIPN SERA
1532: JRST FINOU1
1533: PUSHJ P,GIVEBANDS
1534: JRST OUTJOB
1535:
1536: FINOU1: SKIPE FBACT
1537: SKIPE FIRSTOUT
1538: JRST OUTP1
1539: MOVE DDB,JBTSTS(J)
1540: TLNN DDB,JSEG
1541: JRST OUTP1
1542: SETOM FIRSTOUT
1543: HLRZ DDB,JBTADR(J)
1544: MOVNM DDB,TAC
1545: HRRZ TAC1,JBTADR(J)
1546: HRLI TAC1,-1(TAC)
1547: MOVE DAT,[XWD J,JB2SWP]
1548: HLRZ DSER,JBTSWP(J)
1549: ADDI DSER,1
1550: JRST FBOREQ
1551:
1552: OUTP1: MOVEI TAC,0
1553: MOVE PROG,JBTADR(J)
1554: IFN JDMPRG,<
1555: MOVE JDAT,JBTDAT(J)
1556: >
1557: PUSHJ PDP,CORE0
1558: JSP DAT,CERROR
1559: SKIPN FSCLKF
1560: SKIPE LOCKNO
1561: TDZA TAC,TAC
1562: JRST SWAPSCAN
1563: MOVE DDB,JBTSTS(J)
1564: TLNE DDB,JSEG
1565: PUSHJ P,UAPPLY
1566: PUSHJ P,PSPWAC
1567: JUMPE TAC,SWAPSCAN
1568: PUSHJ P,SETSIN
1569:
1570: SWAPSCAN:
1571: SETZM XPANDF
1572: SETZM FINISH
1573: SWP2: SKIPE J,FORCE
1574: JRST FORCE1
1575: SETZM FIT
1576: SKIPE XJOB
1577: JRST SCNIN
1578: SKIPGE FSCLKF
1579: POPJ P,
1580: SKIPG J,LOCKNO
1581: JRST SCNIN
1582: MOVE DDB,JBTSTS(J)
1583: TLNN DDB,SWP
1584: POPJ P,
1585: JRST SCNINX
1586:
1587:
1588: PSPWAC: SKIPN SPWGO(J)
1589: SKIPE SP2GO(J)
1590: MOVSI TAC,SPWSNB
1591: POPJ P,
SCHEDU page# 0038 next prev
1593:
1594: JN←←TEM
1595:
1596: SCNIN:
1597: HGMAC (2)
1598:
1599:
1600: PUSHJ P,XPAND1
1601: SKIPN SQREQ
1602: SKIPE FORCE
1603: POPJ P,
1604: SKIPN FBACT
1605: JRST .+3
1606: SKIPE SWPBSY
1607: POPJ P,
1608:
1609: PUSHJ P,GCMAX
1610: MOVEM AC3,CORMX
1611:
1612: JSP PC,GETSIN
1613: JRST SCNINZ
1614: MOVEI DAT,ISCAN
1615: JSP PC,QSCAN
1616: POPJ P,
1617: SCNINZ: MOVE DDB,JBTSTS(J)
1618: TLNN DDB,SWP
1619: JRST (QR)
1620:
1621: SCNINX: LDB TAC,IMGIN
1622: SCNIN1:
1623: IFN FTSTAT,<
1624: PUSH P,TAC
1625: MOVEI TAC,FITSTA
1626: PUSHJ P,STAPUT
1627: POP P,TAC
1628: >
1629: CAMG TAC,BIGHOL
1630: JRST INJOB
1631: MOVEM J,FIT
1632:
1633:
1634: SCNIN2: MOVE DDB,JBTSTS(J)
1635: TLNE DDB,JSEG
1636: JRST DEADUP
1637: LDB DDB,PSEGN
1638: MOVE DSER,JBTSTS(DDB)
1639: TLNN DSER,SWP
1640: JRST DEADR1
1641: LDB DSER,IMGINT
1642: ADD TAC,DSER
1643: DEADR1: MOVE AC3,CORMX
1644: SKIPN TAC1,DDB
1645: JRST DEADR9
1646: PUSHJ P,GCMCK
1647: JRST DEADR9
1648: PUSHJ P,CORSGT
1649: SUB AC3,TAC1
1650: DEADR9: LDB DDB,IMGIN
1651: LSH DDB,=10
1652: CAMG DDB,AC3
1653: JRST SCNIN9
1654: PUSHJ P,DEADLOCK
1655: JRST (QR)
SCHEDU page# 0039 next prev
1657:
1658:
1659:
1660:
1661: DEADUP: SETZB DSER,JN
1662: SETZM ISONE
1663: MOVE DDB,J
1664: MOVEI J,JOBN-1
1665: DEADU1: LDB UCHN,PSEGN
1666: CAIE UCHN,(DDB)
1667: DEADU2: SOJG J,DEADU1
1668: JUMPE J,DEADU3
1669: MOVE UCHN,JBTSTS(J)
1670: TLNN UCHN,JHLDIN
1671: SKIPE JBTSIN(J)
1672: JRST DEADU7
1673: MOVM UCHN,JOBQUE(J)
1674: CAIE UCHN,RUNQ
1675: CAIN UCHN,TQ
1676: JRST DEADU7
1677: MOVE UCHN,JBTMSK(J)
1678: AND UCHN,JBTIEN(J)
1679: AND UCHN,JBTIRQ(J)
1680: JUMPN UCHN,DEADU7
1681: SKIPN JBTST2(J)
1682: JRST DEADU2
1683: DEADU7: MOVE TAC1,JBTSTS(J)
1684: TLNE TAC1,SWP
1685: JRST DEADUC
1686: HLRZ TAC1,JBTADR(J)
1687: ADDI TAC1,1
1688: LDB UCHN,IMGINT
1689: LSH UCHN,=10
1690: ADDI TAC1,(UCHN)
1691: CAMG TAC1,CORMX
1692: SETOM ISONE
1693: DEADUC: MOVE TAC1,J
1694: PUSHJ P,CORSGT
1695: CAMG TAC1,DSER
1696: JRST DEADU2
1697: MOVE DSER,TAC1
1698: MOVE JN,J
1699: JRST DEADU2
1700:
1701: DEADU3: JUMPN JN,DEADU4
1702: MOVE J,DDB
1703: JRST (QR)
1704:
SCHEDU page# 0040 next prev
1706:
1707:
1708: DEADU4: MOVE J,JN
1709: MOVE UCHN,TAC
1710: LSH UCHN,=10
1711: ADD UCHN,DSER
1712: CAMG UCHN,CORMX
1713: JRST SCNIN9
1714: PUSH P,DDB
1715: CAMN J,SEGWAIT
1716: SETZM SEGWAIT
1717: PUSHJ P,DEADLOCK
1718: POP P,J
1719: SKIPN ISONE
1720: JRST (QR)
1721: JRST SCNIN9
1722:
1723:
1724:
1725:
1726:
SCHEDU page# 0041 next prev
1728:
1729:
1730:
1731: SCNIN9: MOVEI DDB,SDEAD1
1732: ANDCAM DDB,JBTSTS(J)
1733: CAMLE TAC,CORTAL
1734:
1735: JRST SCNOUT
1736: PUSHJ PDP,CHKSHF
1737: SKIPN FORCE
1738: SKIPE SHFWAT
1739: POPJ PDP,
1740: MOVE J,FIT
1741: LDB TAC,IMGIN
1742: CAMG TAC,BIGHOL
1743: JRST INJOB
1744: HGMAC (2)
1745: JRST SCNIN2
1746:
1747: RESCNIN:
1748: MOVEI DAT,ALLRUNSCAN
1749: JSP PC,QSCAN
1750: JRST NOFIT
1751: MOVE DDB,JBTSTS(J)
1752: TLNN DDB,SWP
1753: JRST (QR)
1754: LDB TAC,IMGIN
1755: LDB DDB,PSEGN
1756: JUMPE DDB,RESCN2
1757: MOVE DSER,JBTSTS(DDB)
1758: TLNN DSER,SWP
1759: JRST RESCN2
1760: LDB DSER,[POINT 8,JBTSWP(DDB),35]
1761: ADD TAC,DSER
1762: RESCN2: CAMLE TAC,CORTAL
1763: JRST (QR)
1764: LDB TAC,IMGIN
1765: JRST SCNIN1
SCHEDU page# 0042 next prev
1767:
1768:
1769: DEADLOCK:
1770: MOVEI DDB,SDEADIN
1771: TDNE DDB,JBTSTS(J)
1772: POPJ P,
1773: PUSH P,J
1774: TRO DDB,SDEAD1
1775: ORM DDB,JBTSTS(J)
1776: PUSHJ P,GCS
1777: CAMLE DSER,CORMAX
1778: JRST DEADL2
1779: PUSHJ P,HALFIN
1780: JRST DEADL1
1781:
1782: HALFIN: LSH J,=12
1783: ADD J,[XWD HALFD,=30*JIFSEC]
1784: PLANT: CONO PI,PIOFF
1785: IDPB J,CLOCK(PID)
1786: CONO PI,PION
1787: POPJ P,
1788:
1789: DEADL2: PUSHJ P,DEACLN
1790: DEADL1: POP P,J
1791: POPJ P,
1792:
1793: DEACLN: LSH J,=12
1794: ADD J,[XWD SDEAD,=15*JIFSEC]
1795: JRST PLANT
SCHEDU page# 0043 next prev
1797:
1798:
1799: SDEAD: MOVEI J,SDEADIN
1800: ANDCAB J,JBTSTS(TAC)
1801: TRNN J,SDEAD1
1802: POPJ P,
1803: MOVE J,TAC
1804: PUSHJ P,GCS
1805: CAMG DSER,CORMAX
1806: POPJ P,
1807: MOVM DDB,JOBQUE(J)
1808: CAIN DDB,STOPQ
1809: JRST DEACLN
1810: PUSHJ P,FLUSIN
1811: PUSH P,J
1812: LDB J,PSEGN
1813: SKIPE J
1814: PUSHJ P,FLUSIN
1815: POP P,J
1816: PUSHJ P,TTYERP
1817: PUSHJ P,INLMES
1818: ASCIZ /CORE DEADLOCK.
1819:
1820: /
1821: PUSHJ P,PRCRCC
1822: PUSHJ P,TTYSTC
1823: JRST STOP1
1824:
1825: HALFD: MOVE J,TAC
1826: MOVM AC3,JOBQUE(J)
1827: MOVE TAC,JBTSTS(J)
1828: CAIE AC3,STOPQ
1829: TRNN TAC,SDEAD1
1830: JRST KILLIN
1831: PUSHJ P,GCS
1832: CAMG DSER,CORMAX
1833: JRST HALFD1
1834: PUSH P,J
1835: JRST DEADL2
1836: HALFD1: PUSH P,DSER
1837: PUSHJ P,GCMAX
1838: POP P,DSER
1839: CAMG DSER,AC3
1840: JRST KILLIN
1841: PUSHJ P,TTYERR
1842:
1843: PUSHJ P,INLMES
1844: ASCIZ /
1845: YOU ARE LOCKED OUT OF CORE!
1846: /
1847: MOVSI IOS,USRB
1848: IORB IOS,DEVIOS(DDB)
1849: PUSHJ P,TTYSTR
1850: JRST HALFIN
1851:
1852: KILLIN: MOVEI DDB,SDEADIN
1853: ANDCAM DDB,JBTSTS(J)
1854: POPJ P,
SCHEDU page# 0044 next prev
1856:
1857:
1858:
1859:
1860: GCMAX: SETZM GCBITS
1861: SETZM GCBITS+1
1862: MOVE AC3,SYSTOP
1863: SUB AC3,LOKTOP
1864: ADD AC3,CORMAX
1865: SKIPG SPWACT
1866: POPJ P,
1867: PUSH P,DDB
1868: PUSH P,[POINT 6,SPWGO(JN),5]
1869: PUSHJ P,GCLP
1870: MOVE DSER,[POINT 6,SP2GO(JN),5]
1871: MOVEM DSER,(P)
1872: PUSHJ P,GCLP
1873: SUB P,[1,,1]
1874: POP P,DDB
1875: POPJ P,
1876:
1877: GCLP: MOVEI JN,0
1878: GCLP1: LDB JN,-1(P)
1879: JUMPE JN,CPOPJ
1880: SKIPN JBTST2(JN)
1881: JRST GCLP1
1882: MOVEI DDB,(JN)
1883: PUSHJ P,GCMCK
1884: JRST GCLP1
1885: MOVEM IOS,GCBITS(DSER)
1886: MOVE DDB,JBTSTS(JN)
1887: TRNE DDB,JLOCK
1888: JRST GCLP2
1889: HLRZ DSER,JBTADR(JN)
1890: SUBI AC3,1(DSER)
1891: GCLP2: ANDI DDB,77
1892: JUMPE DDB,GCLP1
1893: PUSHJ P,GCMCK
1894: JRST GCLP1
1895: MOVEM IOS,GCBITS(DSER)
1896: HLRZ DDB,JBTADR(DDB)
1897: SUBI AC3,1(DDB)
1898: JRST GCLP1
1899:
1900:
1901:
1902:
1903: GCMCK: MOVE DSER,DDB
1904: ANDI DSER,1
1905: MOVEI IOS,1
1906: ROT DDB,-1
1907: ROT IOS,-=16(DDB)
1908: ROT DDB,1
1909: IOR IOS,GCBITS(DSER)
1910: CAME IOS,GCBITS(DSER)
1911: AOS (P)
1912: POPJ P,
1913:
1914:
1915: GCS: MOVE TAC1,J
1916: PUSHJ P,CORSGT
1917: MOVE DSER,TAC1
1918: LDB TAC1,PSEGN
1919: MOVE DDB,TAC1
1920: JUMPE TAC1,CPOPJ
1921: PUSHJ P,CORSGT
1922: ADD DSER,TAC1
1923: POPJ P,
1924:
SCHEDU page# 0045 next prev
1926:
1927:
1928: SCNOUT: HGMAC(3)
1929:
1930: MOVE DDB,CORTAL
1931: MOVEM DDB,SUMCOR
1932: SETZM MAXSIZ
1933: SETZM MAXJBN
1934: SETZM MAXRSZ
1935: SETZM MAXRJB
1936: SETZM MAXSSZ
1937: SETZM MAXSJB
1938: MOVE TAC,[XWD NJOBS,CJOBS]
1939: BLT TAC,CJOBS+JOBN-1
1940: MOVE DDB,FIT
1941: LDB DSER,[POINT 6,JBTSTS(DDB),35]
1942: JUMPE DSER,FORCE3
1943: MOVE UCHN,JBTSTS(DSER)
1944: TLNE UCHN,SWP
1945: LDB DSER,[POINT 8,JBTSWP(DSER),35]
1946: TLNN UCHN,SWP
1947: SETZ DSER,
1948: FORCE3: LDB DDB,IMGINT
1949: ADD DDB,DSER
1950: MOVEM DDB,NEEDED
1951: MOVEI DAT,OSCAN
1952: JSP PC,QSCAN
1953: JRST RESCNIN
1954: CAME J,FIT
1955: JRST SCNOF1
1956: SKIPN JBTSIN(J)
1957: CAMN J,SEGWAIT
1958: JRST (QR)
1959: JRST RESCNIN
1960:
1961: SCNOF1: MOVE DDB,JBTSTS(J)
1962: TLNE DDB,SWP
1963: JRST CJOB
1964: TLNE DDB,JHLDIN
1965: JRST (QR)
1966: TLNE DDB,JSEG
1967: JRST FRCE4A
1968: TRNE DDB,JLOCK
1969: JRST (QR)
1970: CAME J,SEGWAIT
1971: CAMN J,LOCKNO
1972: JRST (QR)
1973:
1974: REPEAT 0,< ;LET'S TRY NOT CLOGGING UP CORE WITH LOW PRIORITY LOSERS
1975: MOVM DDB,JOBQUE(J) ; PICK UP HIS QUEUE
1976: CAIE DDB,TQ ; IS HE IN A RUN QUEUE?
1977: CAIN DDB,RUNQ
1978: CAIA
1979: JRST FORCE4
1980: LDB DDB,PSEGN ; YES, DOES HE HAVE AN UPPER?
1981: JUMPE DDB,FORCE5 ; NO
1982: MOVE DDB,JBTSTS(DDB) ; YES, IS IT IN CORE?
1983: TLNE DDB,SWP
1984: JRST FORCE4 ; NO, DOESN'T MATTER
1985: FORCE5: SKIPN STIME(J) ; HAS THIS JOB BEEN RUN?
1986: JRST (QR) ; NO, GO BACK AND LET IT RUN.
1987: >
SCHEDU page# 0046 next prev
1989: FORCE4: CAME J,SEGWAIT
1990: SKIPE JBTST2(J)
1991: JRST (QR)
1992: HLRZ DDB,JBTDAT(J)
1993: JUMPE DDB,(QR)
1994: PUSHJ P,SIZCHK
1995: JRST CJOB
1996: FORCE6: SKIPN J,MAXJBN
1997: MOVE J,MAXRJB
1998: JUMPN J,FORCE0
1999: MOVE J,MAXSJB
2000: FORCE0: MOVSI DDB,SWP
2001: IORM DDB,JBTSTS(J)
2002: MOVEM J,FORCE
2003:
2004: FORCE1:
2005: IFN JDMPRG,<
2006: MOVE JDAT,JBTDAT(J)
2007: >
2008: SKIPN PROG,JBTADR(J)
2009:
2010: JRST OUTJOB
2011: CAME J,JOB(PID)
2012:
2013: PUSHJ PDP,ANYACT
2014: POPJ PDP,
2015: SKIPN DDB,SEGWAIT
2016: JRST OUTJOB
2017: LDB TAC,[POINT 6,JBTSTS(DDB),35]
2018: CAIE TAC,(J)
2019: JRST OUTJOB
2020: MOVSI TAC,SWP
2021: ANDCAM TAC,JBTSTS(J)
2022: SETZM FORCE
2023: SETZM SWPCNT
2024: POPJ P,
2025:
2026: FRCE4A: SKIPE NJOBS(J)
2027: JRST (QR)
2028: JRST FORCE4
SCHEDU page# 0047 next prev
2030:
2031:
2032: OUTJOB: HGMAC(4)
2033: MOVNM J,FINISH
2034: AOS NOUTSWPS
2035: SETZM FORCE
2036: PUSHJ P,QNORUN
2037: SETZM FIRSTOUT#
2038: MOVSI DDB,INTSWW
2039: TDNN DDB,JBTIEN(J)
2040: JRST OUTJO1
2041: IORM DDB,JBTIRQ(J)
2042: PUSHJ P,INTRUN
2043: MOVM J,FINISH
2044: OUTJO1: HLRZ DDB,JBTADR(J)
2045: JUMPE DDB,SWP5
2046:
2047: MOVE TAC1,JBTSTS(J)
2048: SKIPE JBTPDL(J)
2049: TLNE TAC1,JSEG
2050: JRST OUTJO3
2051: HRLZ TAC1,JBTDAT(J)
2052: HRR TAC1,JBTPDL(J)
2053: ADD TAC1,[JOBPRT,,<JBTPLN+JOBPRT-JOBPFI>]
2054: HRRZ DAT,JBTPDL(J)
2055: BLT TAC1,JBTPLN(DAT)
2056: MOVEI TAC1,SAVJDA
2057: IORM TAC1,JBTSTS(J)
2058: OUTJO3: HRRZ TAC1,JBTADR(J)
2059: MOVNM DDB,TAC
2060: ASH DDB,-=10
2061: ADDI DDB,1
2062: DPB DDB,IMGOUT
2063: SKIPN XPANDF
2064: DPB DDB,IMGIN
2065: SKIPE STIME(J)
2066: JRST OUTJ1
2067: HLRZ DDB,JBTSWP(J)
2068: JUMPN DDB,OUTP1
2069: LDB DDB,IMGOUT
2070:
2071:
2072:
2073:
2074:
2075: OUTJ1: SKIPN BLTSWP
2076: JRST OUTJ2
2077: HRL TAC1,TAC1
2078: HLRZ DAT,JBTADR(J)
2079: ADDI DAT,(TAC1)
2080: BLT TAC1,(DAT)
2081: HRRZ TAC1,JBTADR(J)
2082:
2083: OUTJ2: HRLI TAC1,-1(TAC)
2084: PUSH P,TAC1
2085: MOVE DAT,DDB
2086: PUSHJ P,GXSAT
2087: JRST FULL
2088: SKIPN FBACT
2089: HRLM TAC,JBTSWP(J)
2090: POP P,TAC1
2091: JRST SQOUT
2092:
2093: SWP5:
2094: DPB DDB,IMGOUT
2095: JRST SWAPSCAN
2096:
2097: NOFIT: SETZM FIT
2098: POPJ PDP,
SCHEDU page# 0048 next prev
2100:
2101:
2102:
2103:
2104: SIZCHK: ASH DDB,-12
2105: ADDI DDB,1
2106: MOVE TAC,JBTSTS(J)
2107: TLNE TAC,JSEG
2108: JRST SETMRS
2109: MOVM TAC,JOBQUE(J)
2110: CAIE TAC,TQ
2111: CAIN TAC,RUNQ
2112: JRST SETMRJ
2113: CAMG DDB,MAXSIZ
2114: JRST FORCE2
2115: MOVEM DDB,MAXSIZ
2116: MOVEM J,MAXJBN
2117: FORCE2: ADDB DDB,SUMCOR
2118: CAML DDB,NEEDED
2119: AOS (P)
2120: POPJ P,
2121:
2122: SETMRS: CAMG DDB,MAXSSZ
2123: JRST FORCE2
2124: MOVEM DDB,MAXSSZ
2125: MOVEM J,MAXSJB
2126: JRST FORCE2
2127:
2128: SETMRJ: CAMG DDB,MAXRSZ
2129: JRST FORCE2
2130: MOVEM DDB,MAXRSZ
2131: MOVEM J,MAXRJB
2132: JRST FORCE2
SCHEDU page# 0049 next prev
2134:
2135:
2136:
2137:
2138: CJOB: LDB DDB,PSEGN
2139: JUMPE DDB,(QR)
2140: MOVE TAC,JBTSTS(DDB)
2141: SOSN CJOBS(DDB)
2142: TLNE TAC,SWP
2143: JRST (QR)
2144: PUSH P,J
2145: MOVE J,DDB
2146: HLRZ DDB,JBTADR(J)
2147: JUMPE DDB,CJBXIT
2148: PUSHJ P,SIZCHK
2149: JRST CJBXIT
2150: SUB P,[XWD 1,1]
2151: JRST FORCE6
2152:
2153: CJBXIT: POP P,J
2154: JRST (QR)
SCHEDU page# 0050 next prev
2156:
2157:
2158: SWPXIT: SKIPN FIT
2159: SKIPE FORCE
2160: SETZM SWPCNT
2161: POPJ P,
2162:
2163: FULL: POP PDP,TAC
2164: SOSL FULCNT
2165: POPJ PDP,
2166: MOVEI TAC,=30*JIFSEC
2167: MOVEM TAC,FULCNT
2168: JSP TAC,ERRPNT
2169: ASCIZ /SWAPPING DEVICE FULL/
2170: JRST EXCALP
SCHEDU page# 0051 next prev
2172:
2173:
2174: INJOB: HGMAC(5)
2175: MOVEM J,FINISH
2176: AOS NINSWPS
2177: SETZM FIRSTOUT
2178: SETZM FIT
2179: LSH TAC,=10
2180: SUBI TAC,1
2181: SETZB JDAT,PROG
2182: PUSHJ PDP,CORGET
2183: JRST INJO3
2184: INJO1: LDB DDB,IMGOUT
2185: JUMPE DDB,FININ1
2186: LDB TAC,IMGIN
2187: CAML DDB,TAC
2188: MOVE DDB,TAC
2189: LSH DDB,=18+=10
2190: MOVN TAC1,DDB
2191: HRR TAC1,JBTADR(J)
2192: HLRZ TAC,JBTSWP(J)
2193: JRST SQIN
2194:
2195: INJO3: SETZM FINISH
2196: SKIPN SHFWAT
2197: JRST SWP2
2198: SETZM SWPCNT
2199: POPJ P,
SCHEDU page# 0052 next prev
2201:
2202:
2203:
2204:
2205:
2206:
2207:
2208:
2209: ↑XPAND: PUSH P,DDB
2210: MOVE DDB,TAC
2211: ROT DDB,-=10
2212: ADDI DDB,1
2213: DPB DDB,IMGIN
2214: IFN FTSTAT,<
2215: EXCH TAC,DDB
2216: LSH TAC,6
2217: ANDI TAC,37700
2218: TRO TAC,CSZSTA
2219: PUSHJ P,STAPUT
2220: MOVE TAC,DDB
2221: >
2222: HLRZ DDB,JBTADR(J)
2223: JUMPE DDB,XPAND4
2224: SKIPE XJOB(J)
2225: JRST XPAND3
2226: SETOM XJOB(J)
2227: AOS XJOB
2228: XPAND3: POP P,DDB
2229: SETZM SWPCNT
2230: POPJ P,
2231:
2232: XPAND4: DPB DDB,IMGOUT
2233: MOVSI DDB,SWP
2234: IORM DDB,JBTSTS(J)
2235: JRST XPAND3
2236:
2237:
2238:
2239:
2240: XPAND1: SKIPN XJOB
2241: POPJ P,
2242: MOVEI J,JOBN
2243: SKIPN XJOB(J)
2244: SOJG J,.-1
2245: SETZM XJOB(J)
2246: JUMPE J,XPAND2
2247: SOS XJOB
2248: SETOM XPANDF
2249: SETZM SWPCNT
2250: JRST FORCE0
2251:
2252: XPAND2: PUSHACS
2253: PUSHJ P,DISDATE
2254: PUSHJ P,DISMES
2255: ASCIZ /ππXJOB SET BUT NO JOB EXPANDING
2256: /
2257: POPACS
2258: POPJ P,
SCHEDU page# 0053 next prev
2260: SUBTTL SWPSER 4 AUG 67
2261:
2262:
2263:
2264:
2265:
2266:
2267:
2268:
2269:
2270: ↑SQIN:
2271: SKIPE FBACT
2272: JRST FBIN
2273: TLO TAC,400000
2274: ↑SQOUT:
2275: SKIPE FBACT
2276: JRST FBOUT
2277: MOVEM TAC,SERA
2278: MOVEM TAC1,SQREQ
2279: MOVNI TAC,1
2280: EXCH TAC,DFBUSY
2281: JUMPN TAC,CPOPJ
2282:
2283:
2284: ERATRY←←3
2285:
2286:
2287:
2288:
2289: MOVEI TAC1,ERATRY
2290: MOVEM TAC1,SERACT
2291: MOVE TAC1,SQREQ
2292: MOVSI TAC,200000
2293: ORB TAC,SERA
2294: MOVM ITEM,FINISH
2295: HRROS ITEM
2296: TLZE TAC,400000
2297: SOJA TAC1,DFRED
2298: SOJA TAC1,DFWRT
SCHEDU page# 0054 next prev
2300:
2301:
2302: FBOUT: MOVE DAT,[XWD J,JBTSWP]
2303: MOVEI DSER,MAXFB
2304: FBOREQ: HLRZ UCHN,@DAT
2305: JUMPN UCHN,FBOUT1
2306: MOVEI UCHN,(DSER)
2307: JRST FBOUT3
2308: FBOUT1: HLRO DDB,TAC1
2309: MOVNS DDB
2310: SUBI DDB,1
2311: IDIVI DDB,=76*2000
2312: ADDI DDB,(DSER)
2313: CAMN DDB,UCHN
2314: JRST FBOUT6
2315: CAMG UCHN,DDB
2316: JRST FBOUT2
2317: PUSHJ P,FBGIVE
2318: SUBI UCHN,1
2319: HRLM UCHN,@DAT
2320: JRST FBOUT1
2321:
2322: FBOUT2: ADDI UCHN,1
2323: FBOUT3: PUSHJ P,FBGET
2324: JRST FBOUT7
2325: HRLM UCHN,@DAT
2326: JRST FBOUT1
2327:
2328: FBOUT7: MOVEM TAC1,DIOWD#
2329: MOVE TAC,[XWD FBCLK,1]
2330: CONO PI,PIOFF
2331: IDPB TAC,CLOCK
2332: CONO PI,PION
2333: POPJ P,
2334:
2335: FBCLK: MOVM J,FINISH
2336: MOVE TAC1,DIOWD
2337: JRST FBOUT
SCHEDU page# 0055 next prev
2339:
2340:
2341: FBOUT6: MOVEI UCHN,(DSER)
2342: HRRZ TAC,TAC1
2343: HLRO AC2,TAC1
2344: MOVNS AC2
2345: SETZM TAC1
2346: SETOM SWPBSY#
2347: SETZM SERA
2348: FBOUT4: CAIG AC2,=76*2000
2349: JRST FBOUT5
2350: PUSH P,TAC
2351: PUSH P,AC2
2352: PUSH P,DSER
2353: PUSH P,DAT
2354: MOVEI AC2,=76*2000
2355: MOVSI DAT,DONE1
2356: PUSHJ P,FBWRITE
2357: JRST FBERR1
2358: POP P,DAT
2359: POP P,DSER
2360: POP P,AC2
2361: POP P,TAC
2362: ADDI TAC,=76*2000
2363: SUBI AC2,=76*2000
2364: ADDI UCHN,1
2365: JRST FBOUT4
2366:
2367: FBERR1: POP P,DAT
2368: POP P,DSER
2369: POP P,AC2
2370: POP P,TAC
2371: JRST FBERR
2372:
2373: FBOUT5: MOVSI DAT,DONE
2374: PUSHJ P,FBWRITE
2375: JRST FBERR
2376: POPJ P,
2377:
2378: DONE: SETZM SWPCNT
2379: SETZM SWPBSY
2380: DONE1: HRRZM DAT,SERA
2381: POPJ P,
SCHEDU page# 0056 next prev
2383:
2384:
2385: FBIN: MOVE DAT,[XWD J,JBTSWP]
2386: MOVEI DSER,MAXFB
2387: FBIREQ: HLRZ UCHN,@DAT
2388: HLRO DDB,TAC1
2389: MOVNS DDB
2390: SUBI DDB,1
2391: IDIVI DDB,=76*2000
2392: ADDI DDB,(DSER)
2393: CAMGE UCHN,DDB
2394: JRST FBINA
2395: MOVEI UCHN,(DSER)
2396: HRRZ TAC,TAC1
2397: HLRO AC2,TAC1
2398: MOVNS AC2
2399: SETZM TAC1
2400: SETOM SWPBSY
2401: SETZM SERA
2402: FBIN2: CAIG AC2,=76*2000
2403: JRST FBIN1
2404: PUSH P,TAC
2405: PUSH P,AC2
2406: PUSH P,DSER
2407: PUSH P,DAT
2408: MOVEI AC2,=76*2000
2409: MOVSI DAT,DONE1
2410: PUSHJ P,FBREAD
2411: JRST FBERR1
2412: POP P,DAT
2413: POP P,DSER
2414: POP P,AC2
2415: POP P,TAC
2416: ADDI TAC,=76*2000
2417: SUBI AC2,=76*2000
2418: ADDI UCHN,1
2419: JRST FBIN2
2420:
2421: FBIN1: MOVSI DAT,DONE
2422: PUSHJ P,FBREAD
2423: JRST FBERR
2424: POPJ P,
SCHEDU page# 0057 next prev
2426:
2427:
2428: FBERR: SETZM SWPCNT
2429: SETZM SWPBSY
2430: SETOM SERA
2431: JRST FINSWP
2432:
2433: FBINA: JUMPE UCHN,FBINB
2434: SUBI UCHN,(DSER)-1
2435: MOVNI DDB,=76*2000
2436: IMULI DDB,(UCHN)
2437: HRL TAC1,DDB
2438: JRST FBIN
2439:
2440: FBINB: PUSHACS
2441: PUSHJ P,DISDATE
2442: PUSHJ P,DISERR
2443: [ASCIZ/SWAP REQUEST WITH NO BANDS.
2444: J=/]
2445: DISARG(DCP,<-20+J(P)>)
2446: [ASCIZ/
2447: /]
2448: -1
2449: POPACS
2450: JRST FBERR
SCHEDU page# 0058 next prev
2452:
2453:
2454:
2455:
2456:
2457:
2458:
2459:
2460:
2461:
2462:
2463: ↑GXSAT:
2464: SETZM TAC
2465: SKIPE FBACT
2466: JRST CPOPJ1
2467: MOVE TAC,ITEM
2468: IMULI TAC,1140
2469: AOS (PDP)
2470: ↑FXSAT: POPJ PDP,
2471:
2472: SWPINI: SETZM SWPBSY
2473: SETZM SWPCNT
2474: SETZM FIT
2475: SETZM FORCE
2476: SETZM FINISH
2477: SETZM SERA
2478: POPJ PDP,
2479:
2480: >
2481: BEND SCHEDU
EOF: SCHEDU end-of-file. cnt=57